/**
 * 微信小程序环境适配工具
 */

// 修复__route__未定义的问题
export function fixRouteUndefined() {
  // 在每个页面加载时调用
  if (typeof wx !== 'undefined') {
    try {
      const pages = getCurrentPages()
      if (pages && pages.length > 0) {
        const currentPage = pages[pages.length - 1]
        const route = currentPage.route
        
        // 定义在多个可能需要的对象上
        if (typeof global !== 'undefined' && !global.__route__) {
          global.__route__ = route
        }
        
        if (!wx.__route__) {
          wx.__route__ = route
        }
        
        // 在Page对象上添加
        if (currentPage && !currentPage.__route__) {
          currentPage.__route__ = route
        }
        
        // 在App实例上添加
        if (typeof getApp === 'function') {
          const app = getApp()
          if (app && !app.__route__) {
            app.__route__ = route
          }
        }
      }
    } catch (e) {
      console.error('修复route失败:', e)
    }
  }
}

// 全局存储
let globalState = {}

// 提供一个全局状态对象，解决store未定义问题
export function getGlobalState() {
  return globalState
}

// 注入全局变量，防止Vue3中常见的未定义错误
export function injectGlobalVariables() {
  if (typeof wx !== 'undefined') {
    // 确保基本变量存在
    if (!wx.globalData) {
      wx.globalData = {}
    }
    
    // 将Vue中常用的全局变量添加到wx对象
    const vars = ['__route__', 'store', '$store', 'vuex', 'pinia']
    vars.forEach(varName => {
      if (!wx[varName]) {
        wx[varName] = {}
      }
    })
  }
}

export default {
  fixRouteUndefined,
  getGlobalState,
  injectGlobalVariables
} 